package com.gph.saviorframework.mq.api.order;

import com.gph.saviorframework.mq.api.Admin;
import com.gph.saviorframework.mq.api.Message;
import com.gph.saviorframework.mq.api.SendResult;

/**
 * 顺序消息生产者接口
 */
public interface OrderProducer extends Admin {

    /**
     * 启动服务
     */
    void start();


    /**
     * 关闭服务
     */
    void shutdown();


    /**
     * 发送顺序消息
     *
     * @param message
     *         消息
     * @param shardingKey
     *         顺序消息选择因子
     *
     * @return 发送结果，含消息Id
     */
    SendResult send(final Message message, final String shardingKey);
}
